function ajax(url) {
    //返回promise实例对象
    return new Promise((resolve, reject) => {//发异步ajax请求
        //创建xhr实例对象
        const xhr = new XMLHttpRequest();
        //设置请求信息
        xhr.open('GET', url, true);
        //绑定监听
        xhr.onreadystatechange = () => {
            //请求完成后继续处理
            if (xhr.readyState === 4) {
                //请求成功,返回成功状态promise实例
                if (xhr.status >= 200 && xhr.status < 300) {
                    //响应体JSON解析为js对象,指定为成功的value
                    resolve(JSON.parse(xhr.responseText));
                } else {
                    //请求失败,返回失败状态的promise实例
                    //值为包含失败的错误信息的对象
                    reject(new Error(`请求失败 status=${xhr.status}`))
                }
            }
        }
        //发送请求
        xhr.send();
    })
}